package hw2.model;

/**
 * Provides the definition of a "Model" implementation.
 * 
 * @author Tony D'Augustine
 * 
 */

public interface Model {
	/**
	 * Startup background activities.
	 */
	void startup();
	
	/**
	 * Shutdown background activities
	 */
	void shutdown();
	
	/**
	 * Register a listener for state updates
	 * 
	 * @param listener
	 */
	void addListener(ModelListener listener);
	
	/**
	 * Remove a listener for state updates.
	 * 
	 * @param listener
	 */
	void removeListener(ModelListener listener);
	
}